package com.itbaizhan.listener;

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
/*HttpSession属性监听器*/
/*1,创建完监听器，在wed.xml 配置<listener>中的<listener-class>  或：注解式开发@WebListener  不用配置参数，
 * 因为只有listener-class，容器会自动找到地址*/
//@WebListener
public class HttpSessionAttrListener implements HttpSessionAttributeListener {
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {
        System.out.println("------start added-------");
        System.out.println("name: "+se.getName()+" value: "+se.getValue());
        System.out.println(se.getSession());
        System.out.println("------end added-------");
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {
        System.out.println("------start remove------");
        System.out.println("name: "+se.getName()+" value: "+se.getValue());
        System.out.println(se.getSession());
        System.out.println("------end remove-------");
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        System.out.println("------start replace-------");
        System.out.println("name: "+se.getName()+" value: "+se.getValue());
        System.out.println(se.getSession());
        System.out.println("------end replace-------");
    }
}
/*HttpSession对象的属性操作监听器
HttpSessionAttributeListener接口定义了对于HttpSession对象属性
操作的监听行为。

void attributeAdded(HttpSessionBindingEvent se)
向HttpSession对象中添加属性时会触发该监听方法，
并将HttpSession对象传递到该方法中。触发事件的方法
HttpSession.setAttribute("key","value")。

void attributeRemoved(HttpSessionBindingEvent se)
当从HttpSession对象中删除属性时会触发该监听方法，
并将HttpSession对象传递到该方法中。
触发事件方法HttpSession.removeAttribute("key")。

void attributeReplaced(HttpSessionBindingEvent se)
当从HttpSession对象中属性的值发生替换时会触发该监听方法，
并将HttpSession对象传递到该方法中。触发事件的方法
HttpSession.setAttribute("key","value")。*/